/*
 * DAWGNode.h
 *
 *  Created on: Sep 18, 2011
 *      Author: damian
 */

#ifndef DAWGNODE_H_
#define DAWGNODE_H_
#include <list>
#include <string>
#include <iostream>
#include <set>
#include "DAWGSetElement.h"
#include "../indice/RegistroIndice.h"

using namespace std;

class DAWGSetElement;

class DAWGNode {
	char c;
	set<DAWGSetElement> childs;

	DAWGNode* createNodoHijo(char c);
	DAWGNode* findFinPalabra();
	DAWGNode* createFinPalabra();
	DAWGNode* findNodoHijo(char c);

public:
	DAWGNode(char c);
	virtual ~DAWGNode();

	char getChar();
	DAWGNode* findPalabra(string palabra);
	void registerPalabra(string palabra);
	virtual void inorden(string s, list<string>* lexico, list<RegistroInfo*>* RegInd);

};

#endif /* DAWGNODE_H_ */
